#include <iostream>
#include <string>
using namespace std;

// 引用C语言
#ifdef __cplusplus
extern "C"
{
    // 声明函数
    void show_char(string &tmp);

    // 定义函数
    void show_char(string &tmp)
    {
        cout<<tmp<<endl;
    }
}
#endif

// clean() 清空字符串xx的内容
// empty() 判断字符串是否为空
// push_back() 在字符串的末尾添加一个字符
// pop_back() 删除字符串的最后一个字符
// append() 连接字符串
// at() 返回字符串中指定位置的字符



int main(int argc, char const *argv[])
{
    string S1("hello world");

    cout<<"原始字符串为:"<<S1<<endl;

    S1.clear();
    if(S1.empty())
    {
        cout<<"字符串为空"<<endl;
    }
    else
    {
        cout<<"字符串不为空"<<endl;
    }

    S1 = "hello world";
    S1.push_back('!');
    cout<<"添加字符后，字符串为:"<<S1<<endl;
    S1.pop_back();
    cout<<"删除字符后，字符串为:"<<S1<<endl;

    string S2("哈哈哈");
    
    S1.append(S2);
    cout<<"连接字符串后，字符串为:"<<S1<<endl;

    S1.append("好好好"+S2);
    cout<<"连接字符串后，字符串为:"<<S1<<endl;


    char c = S1.at(3);  //cout<<S1[4]<<endl;
    cout<<"指定位置的字符为:"<<c<<endl;

    // 调用C语言函数
    show_char(S1);

    return 0;
}
